草庐IT

Java int += double 语法惊喜

全部标签

c# - 将具有指数表示法的数字从字符串转换为 double 或十进制

有没有一种快速的方法可以将指数表示法的数字(例如:“0.5e10”或“-5e20”)转换为十进制或double?更新:我找到了ParseaNumberfromExponentialNotation但这些示例对我不起作用,除非我指定了一种文化。解决方法:doubletest=double.Parse("1.50E-15",CultureInfo.InvariantCulture); 最佳答案 如果您的文化使用.作为小数分隔符,则只需double.Parse("1.50E-15")即可。如果您的文化使用其他东西(例如、),或者您想确保您

C# 列表框集合语法

在快速学习C#的同时,我遇到了这个Collection语法问题。我向列表框lstData添加了一些我自己的类型MyItem的对象。现在我需要在这个列表框中搜索并想到使用优雅的LINQ符号,例如:lstData.Items.Where(x=>x.Text==SearchString)但列表框的项目没有.Where(),尽管我确实包含了“usingSystem.Linq;”命名空间。所以我尝试了:foreach(MyItemitemin(MyItem)lstData.Items)但这会产生构建错误:无法将类型“System.Windows.Forms.ListBox.ObjectColle

c#.NET 和 sprintf 语法

如何将此代码翻译成C#,具体如何sprintf在C#中实现?stringoutput="Theuser%sloggedin";stringloggedIn="is";stringloggedOut="isn't";if(TheUser.CheckStatus()){output=sprintf(output,loggedIn);}else{output=sprintf(output,loggedOut);}returnoutput;我期待看到"Theuserisn'tloggedin"如果TheUser.CheckStatus()是false. 最佳答案

c# - 在C#中将350M数字快速加载到double[]数组中

我将在二进制文件中存储350M预先计算的double,并在我的dll启动时将它们加载到内存中。是否有任何内置方法可以并行加载它,或者我应该自己将数据拆分为多个文件并自己处理多个线程?回答评论:我将在足够强大的机器上运行这个dll,很可能只在64位机器上运行。因为对我的号码的所有访问都将通过属性进行,所以我可以将我的号码存储在多个数组中。[更新]谢谢大家的回答!我期待着在不同的盒子上进行大量的基准测试。关于需求:我想加速一个非常慢的计算,所以我打算预计算一个网格,将它加载到内存中,然后进行插值。 最佳答案 好吧,我做了一个小测试,我肯

c# - 格式化具有最小小数位数的 double 类型

我需要格式化double类型,使其具有最少两位小数但不限制最大小数位数:5->"5.00"5.5->"5.50"5.55->"5.55"5.555->"5.555"5.5555->"5.5555"我怎样才能实现它? 最佳答案 您可以对非可选数字使用0格式说明符,对可选数字使用#:n.ToString("0.00###")此示例最多提供五位小数,您可以根据需要添加更多#位置。 关于c#-格式化具有最小小数位数的double类型,我们在StackOverflow上找到一个类似的问题:

C# Lambda 表达式语法 : are brackets necessary?

我是C#的新手,之前我看到lambda表达式是这样的(params)=>{expression;}但是在LINQ中,我看到了这样的例子IEnumerablecustomerFirstNames=customers.Select(cust=>cust.FirstName);没有括号。(我实际上是指{}和()-不管我们称它们为大括号、圆括号还是方括号。)它们是一样的还是有什么区别?非常感谢。 最佳答案 规则是:lambda表达式的形式为(modifiertypeparameter,modifiertypeparameter...)=>{

c# - 从 double 转换为 int 的最佳(最安全)方法

我很好奇将double转换为整数的最佳方法。运行时安全是我在这里的主要关注点(它不一定是最快的方法,但这是我的次要关注点)。我在下面留下了一些我可以想出的选项。任何人都可以权衡哪种是最佳实践吗?有没有我没有列出的更好的方法来完成这个?doublefoo=1;intbar;//Option1boolparsed=Int32.TryParse(foo.ToString(),outbar);if(parsed){//...}//Option2bar=Convert.ToInt32(foo);//Option3if(fooInt32.MinValue){bar=(Int32)foo;}

c# - 在 C# 中截断 double 值的位数

如何在C#中截断double值的前导数字,我试过Math.Round(doublevalue,2)但没有给出要求的结果。而且我在数学课上没有找到任何其他方法。例如,我的值为12.123456789,我只需要12.12。 最佳答案 编辑:有人指出,这些方法舍入值而不是截断。很难真正截断double值,因为它实际上不是在正确的基数中......但截断decimal值更可行。您应该使用适当的格式字符串,custom或standard,例如stringx=d.ToString("0.00");或stringx=d.ToString("F2"

c# - 无法识别的 C# 语法

假设我们有:classFoo{publicintIntPropertyInFoo{get;set;}publicBarBarPropertyInA{get;set;}}classBar{publicstringStringPropertyInBar{get;set;}}然后我们想用对象初始化器实例化Foo:publicstaticvoidMain(string[]args){varfoo=newFoo{IntPropertyInFoo=123,BarPropertyInA=//Ommitingnewandtypename-whydoesitcompile?{StringProperty

C# Double.ToString() 性能问题

我有以下方法将double组转换为List:staticDestTest(Sources){Destd=newDest();if(s.A24!=null){double[]dd=s.A24;intcnt=dd.Length;Listlst=newList();for(inti=0;i根据我的基准测试,在循环中执行List.Add()似乎是最快的方法,超过了所有各种LINQ和Convert技巧。这真的很慢。一百万次调用需要2400毫秒(任何CPU,首选64位)。所以我正在尝试各种方法来让它更快。假设我显然无法缓存源或目标列表等。所以无论如何,我在这里偶然发现了一些奇怪的东西......如